﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp6
{
    class Program
    {
        static void Main(string[] args)
        {
            ///C# Stack类：堆栈
            /////栈是一种先进后出的结构，即元素从栈的尾部插入，从栈的尾部移除，类似于日常生活中搬家的时候装车，先装上车的东西要后拿下来。
            ///Push(object obj)	向栈中添加元素，也称入栈
            Stack stack = new Stack();
            //向栈中存放元素
            stack.Push("1 号盘子");
            stack.Push("2 号盘子");
            stack.Push("3 号盘子");
            stack.Push("4 号盘子");
            stack.Push("5 号盘子");
            Console.WriteLine("取出盘子：");
            //判断栈中是否有元素
            while (stack.Count != 0)
            {
                //取出栈中的元素
                Console.WriteLine(stack.Pop());
            }

            ///object Peek()	用于获取栈顶元素的值，但不移除栈顶元素的值



            ///Clear()	从 Stack 中移除所有的元素
            ///stack.Clear();


            //Contains(object obj)	判断某个元素是否在 Stack 中
            /*if (stack.Contains(""))
            {
                Console.WriteLine("有这个元素");
            }
            else
            {
                Console.WriteLine("没有这个元素");
             }
            */

            //object[] ToArray()	复制 Stack 到一个新的数组中
            ArrayList arrayList = new ArrayList() { 1,2,3,4,5,6,7,8};
            object[] obj = stack.ToArray();

           foreach(var c in obj)
            {
                Console.WriteLine(c);
            }
        }
    }
}
